import Microi from "@/common/microi.uniapp.js"
/*
 * 上传文件
 * @param {string} file 文件对象
 * @param {Object} item 上传配置
 * @returns {Promise}
 */
export const uploadFile = (file, item) => {
  return new Promise((resolve, reject) => {
    let formFileData = {}
    // 如果是图片
    if (item.Component == 'ImgUpload') {
      formFileData = {
        // 其他表单字段
        'Path': '/img',
        'Limit': item.Config.ImgUpload.Limit,
        'Preview': item.Config.ImgUpload.Preview,
      }
    } else { // 文件上传
      formFileData = {
        // 其他表单字段
        'Path': '/file',
        'Limit': item.Config.FileUpload.Limit,
        'Preview': item.Config.FileUpload.Preview || false,
      }
    }
    let data = []
    console.log('上传文件：', file)
    file.forEach(async (path) => {
      // const newPath = await compressImg(path)
      // 压缩图片 ，先转换
      // const newPath = await dataURLtoBlob(path)
      // new Compressor(newPath, {
      //   quality: 0.6,
      //   success: (result) => {
      //     // blob转换连接
      //     const url = URL.createObjectURL(result)
      //     // 上传文件
      //     Microi.Upload({ ...formFileData, 'File': url }).then(res => {
      //       if (res.Code == 1) {
      //         data.push({
      //           'Path': res.Data.Path,
      //           'Name': res.Data.Name,
      //           'Size': res.Data.Size,
      //           'CreateTime': res.Data.CreateTime,
      //           'Id': res.Data.Id,
      //           'url': GetServerPath(res.Data.Path),
      //           'name': res.Data.Name,
      //           'extname': res.Data.Path.split('.')[1],
      //         })
      //         resolve({Code: 1, Data: data})
      //       } else {
      //         reject({Code: 0, Msg: res.Msg})
      //       }
      //     })
      //   },
      //   error: (err) => {
      //     console.log('压缩图片失败：', err)
      //   },
      // });
        // 上传文件
        Microi.Upload({ ...formFileData, 'File': path }).then(res => {
        if (res.Code == 1) {
          data.push({
            'Path': res.Data.Path,
            'Name': res.Data.Name,
            'Size': res.Data.Size,
            'CreateTime': res.Data.CreateTime,
            'Id': res.Data.Id,
            'url': GetServerPath(res.Data.Path),
            'name': res.Data.Name,
            'extname': res.Data.Path.split('.')[1],
          })
          resolve({Code: 1, Data: data})
        } else {
          reject({Code: 0, Msg: res.Msg})
        }
      })
    })
  })
}